您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

基于冗余位替换的点类型GIS矢量数据伪装与还原方法

  • 申请号:CN201110346231.4 申请公布号: CN102509058B
  • 申请日: 2011-11-04 申请公布日: 2014-07-30
  • 申请(专利权)人: 专利代理机构: 南京知识律师事务所
  • 分类号:G06F21/60

专利介绍

本发明公开了一种基于冗余位替换的点类型GIS矢量数据的伪装与还原方法,属于地理信息安全领域。本发明的数据伪装处理步骤:将待伪装图层的坐标值进行变换,并根据载体图层数据特征和精度要求将其分成若干组;设置密钥,基于密钥生成一个随机序列并排序;基于生成的序列将变换后的点坐标隐藏到载体图层相应位置。经本发明的方法进行伪装处理后,载密图层从视觉上感觉不出变化,使攻击者很难发现其包含秘密信息,较好的伪装了秘密数据,即使攻击者知道其为一载密图层也由于密钥的引入很难将秘密数据提取。本发明的方法可以成功应用于点类型矢量数据的伪装与还原处理,一定程度上满足了GIS矢量数据的隐藏通信和安全传输需求。
1.基于冗余位替换的点类型GIS矢量数据伪装与还原方法,主要包括以下过程,(1)伪装过程:xa0步骤一:打开一个待伪装的点图层即秘密图层文件和一个载体图层文件,确定载体图层中坐标值最大冗余位的位数num及其相关冗余数据的取值区间(min,max),其中,min=max/10;xa0步骤二:秘密图层数据的域值、有效位长度与分组处理,xa0(a)根据载体图层冗余数据的取值区间(min,max),对秘密图层中的每一个点坐标值对(Xi,Yi)用下式计算控制符k和r:xa0min<|Xi×10-k|<maxxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0(1)xa0min<|Yi×10-r|<maxxa0其中,i=0,1,2,...,n-1,n为秘密图层中点的个数;xa0(b)计算h值xa0扫描坐标序列(Xi,Yi),查看序列中坐标值有效数据位的位数,找出最大值H,根据载体图层中坐标值最大冗余位的位数num,采用下式计算分组数h,xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="700"/>(c)对坐标值对进行预处理,补充有效数字xa0对每一个坐标值对(Xi,Yi),查看其有效数字位数,如果小于num×h-1,则在每个坐标值最后一位有效数字后补“0”,确保其有效数字为num×h-1位;xa0(d)将(a)中得到的k追加在Xi坐标值的最后一位,将r追加在Yi坐标值的最后一位,使Xi、Yi坐标值均有num×h位有效数据;xa0(e)将坐标值对按以下方式分成h组xa0依次截取原始坐标值对(Xi,Yi)的第num×t到num×(t+1)-1位有效数字,作为第t个分组的坐标值对,最终形成h个新的坐标值对(xit,yit),其中t=0,1,2,...,h-1;i=0,1,2,...,n-1,n为待伪装图层点的个数;xa0步骤三:根据输入的密钥key生成一个长度为n×h的伪随机序列L={Lj},其中n为待伪装图层中点的个数,j=0,1,2,...,n×h-1;Lj的取值范围为0到m-1,m为载体图层中要素坐标点的个数;对伪随机序列L中的数字按照升序排列,生成序列M={Mj};xa0步骤四:依次读坐标序列(xit,yit)中的坐标值对,并根据序列M={Mj}将坐xa0标值对(xit,yit)隐藏在载体图层的相应位置,具体步骤为:xa0(a)按照下式计算j值:xa0j=i×h+txa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0(3)xa0(b)根据序列M第j个值Mj查找载体图层的待嵌入位置,并获取该位置的坐标值对(Aj,Bj);xa0(c)对该坐标值对(Aj,Bj)的冗余位数据以(xit,yit)进行替换;xa0步骤五:循环步骤四,直至每一要素处理完毕后,保存伪装后的数据文件,并将原始密钥key,秘密图层点数n,分组数h,以及max等四个参数存入密钥文件License.txt中;xa0(2)还原过程:xa0步骤一:新建一个点图层,其要素集为F,同时打开一个载密图层;xa0步骤二:读取密钥文件License.txt,根据原始密钥key、秘密图层点数n以及分组数生成一个长度为n×h的伪随机序列L={Lj},其中j=0,1,2,...,n×h-1;Lj的取值范围为0到m-1,m为载体图层中要素坐标点的个数;对伪随机序列L中的数字按照升序排列,生成序列M={Mj};xa0步骤三:对于打开的载密图层,根据序列M={Mj}依次提取其中的载密坐标(xj,yj);xa0步骤四:根据密钥文件中提取的max值将(xj,yj)分成(Aj,Bj)、(Cj,Dj)两部分,具体方法如下:xa0(a)根据下式确定坐标值对的分割位置Sxa0S=-log10maxxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0(4)xa0(b)截取坐标值对(xj,yj)从首位到小数点后S位的数据位形成值对(Aj,Bj),截取坐标值对(xj,yj)小数点S+1位之后的数据位形成值对(Cj,Dj);xa0步骤五:从(Cj,Dj)中恢复秘密数据xa0(a)将坐标值对(Cj,Dj)按下式计算其对应的整数值i、t并更改坐标序列下标,生成新的坐标值对(Cit,Dit)其中t=0,1,2...h-1;i=0,1,2...n-1;xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="700"/>t=jxa0modxa0hxa0(b)将下标i相同的h个值对转换为字符串(C′it,D′it),并按下式进行字符串拼接运算,生成新的字符串(S′i,T′i)然后转回值对(Si,Ti),xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="700"/>ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="267"/>(c)按下式进行处理,将值对(Si,Ti)生成新的值对(Ei、Fi),使Ei、Fi的绝对值位于区间(min,max),xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="700"/>ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="391"/>Ei=Si×10-pFi=Ti×10-q(d)将Ei、Fi的最后一位数据k,r提取出来做如下处理,获得数据对(Xi,Yi);xa0Xi=Ei×10kxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0(8)xa0Yi=Fi×10r(e)将数据对(Xi,Yi)去掉末位数字和无效的0,加到新的点图层要素集F中;xa0步骤六:循环步骤三到五,直至每一要素处理完毕后,保存提取后的数据文件。xa0技术领域
本发明属于地理信息安全领域,具体涉及一种基于冗余位替换的点类型GIS矢量数据伪装与还原算法。
背景技术
地理信息的安全防护涉及国家安全和社会利益,是当前急需解决的国家和社会重大需求问题。作为国家空间数据基础设施主要数据内容的GIS矢量数据,其信息安全研究更是至关重要。目前,信息伪装已成为信息安全研究中除密码学之外的另一重要分支。国内外相关研究文献及专利检索结果分析表明,目前,在信息伪装的研究方面,所研究的载体数据类型主要包括图像、视频、遥感影像、DEM等。但是,矢量数据由于其具有无固定存储顺序的数据组织、多样的数据格式、强大的可视化表达手段、复杂的投影变换、繁多的空间分析应用,以及精度高、冗余少等诸多方面的特性,使得针对矢量数据的信息伪装研究具有一定的特殊性和较大难度。
发明内容
本发明的目的在于:基于冗余位替换方法,将安全密级较高的GIS点状要素信息隐藏到可公开发布的GIS要素图层中,以有效隐藏涉密数据,一定程度上满足GIS矢量数据的隐藏通信和安全传输需要。为了实现上述目的,本发明所采取的技术方案为:基于冗余位替换的点类型GIS矢量数据伪装与还原方法,主要包括以下过程,(1)伪装过程:步骤一:打开一个待伪装的点图层即秘密图层文件和一个载体图层文件,确定载体图层中坐标值最大冗余位的位数num及其相关冗余数据的取值区间(min,max),其中,min=max/10;步骤二:秘密图层数据的域值、有效位长度与分组处理,(a)根据载体图层冗余数据的取值区间(min,max),对秘密图层中的每一个点坐标值对(Xi,Yi)用下式计算控制符k和r:min<|Xi×10-k|<maxxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0(1)min<|Yi×10-r|<max其中,i=0,1,2,...,n-1,n为秘密图层中点的个数;(b)计算h值扫描坐标序列(Xi,Yi),查看序列中坐标值有效数据位的位数,找出最大值H,根据载体图层中坐标值最大冗余位的位数num,采用下式计算分组数h,ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>(c)对坐标值对进行预处理,补充有效数字对每一个坐标值对(Xi,Yi),查看其有效数字位数,如果小于num×h-1,则在每个坐标值最后一位有效数字后补“0”,确保其有效数字为num×h-1位;(d)将(a)中得到得k追加在Xi坐标值的最后一位,将r追加在Yi坐标值的最后一位,使Xi、Yi坐标值均有num×h位有效数据;(e)将坐标值对按以下方式分成h组依次截取原始坐标值对(Xi,Yi)的第num×t到num×(t+1)-1位有效数字,作为第t个分组的坐标值对,最终形成h个新的坐标值对(xit,yit),其中t=0,1,2,...,h-1;i=0,1,2,...,n-1,n为待伪装图层点的个数;步骤三:根据输入的密钥key生成一个长度为n×h的伪随机序列L={Lj},其中n为待伪装图层中点的个数,j=0,1,2,...,n×h-1;Lj的取值范围为0到m-1,m为载体图层中要素坐标点的个数;对伪随机序列L中的数字按照升序排列,生成序列M={Mj};步骤四:依次读坐标序列(xit,yit)中的坐标值对,并根据序列M={Mj}将坐标值对(xit,yit)隐藏在载体图层的相应位置,具体步骤为:(a)按照下式计算j值:j=i×h+txa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0(3)(b)根据序列M第j个值Mj查找载体图层的待嵌入位置,并获取该位置的坐标值对(Aj,Bj);(c)对该坐标值对(Aj,Bj)的冗余位数据以(xit,yit)进行替换;步骤五:循环步骤四,直至每一要素处理完毕后,保存伪装后的数据文件,并将原始密钥key,秘密图层点数n,分组数h,以及max等四个参数存入密钥文件License.txt中;(2)还原过程:步骤一:新建一个点图层,其要素集为F,同时打开一个载密图层;步骤二:读取密钥文件License.txt,根据原始密钥key、秘密图层点数n以及分组数生成一个长度为n×h的伪随机序列L={Lj},其中j=0,1,2,...,n×h-1;Lj的取值范围为0到m-1,m为载体图层中要素坐标点的个数;对伪随机序列L中的数字按照升序排列,生成序列M={Mj};步骤三:对于打开的载密图层,根据序列M={Mj}依次提取其中的载密坐标(xj,yj);步骤四:根据密钥文件中提取的max值将(xj,yj)分成(Aj,Bj)、(Cj,Dj)两部分,具体方法如下:(a)根据下式确定坐标值对的分割位置SS=-log10maxxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0(4)(b)截取坐标值对(xj,yj)从首位到小数点后S位的数据位形成值对(Aj,Bj),截取坐标值对(xj,yj)小数点S+1位之后的数据位形成值对(Cj,Dj);步骤五:从(Cj,Dj)中恢复秘密数据(a)将坐标值对(Cj,Dj)按下式计算其对应的整数值i、t并更改坐标序列下标,生成新的坐标值对(Cit,Dit)其中t=0,1,2...h-1;i=0,1,2...n-1;ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>t=jxa0modxa0h(b)将下标i相同的h个值对转换为字符串(C′it,D′it),并按下式进行字符串拼接运算,生成新的字符串(S′i,T′i)然后转回值对(Si,Ti), S i ′ = Σ 0 h - 1 C it ′ - - - ( 6 ) ]]> T i ′ = Σ 0 h - 1 D it ′ ]]>(c)按下式进行处理,将值对(Si,Ti)生成新的值对(Ei、Fi),使Ei、Fi的绝对值位于区间(min,max),ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="397"/>Ei=Si×10-pFi=Ti×10-q(d)将Ei、Fi的最后一位数据k,r提取出来做如下处理,获得数据对(Xi,Yi),Xi=Ei×10kxa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0(8)Yi=Fi×10r(e)将数据对(Xi,Yi)去掉末位数字和无效的0,加到新的点图层要素集F中;步骤六:循环步骤三到五,直至每一要素处理完毕后,保存提取后的数据文件。本发明根据GIS矢量数据的数据组织特点,提出了一种针对点类型GIS矢量数据的伪装与还原方法,在载体图层中随机选择要素中的点进行秘密信息的伪装与还原,通过本发明的方法能够避免涉密数据在远程传输过程中被非法拦截,有效提高了GIS矢量数据在数据传输、发行过程中的安全性,从而达到一定的数据保护目的,可应用于点类型GIS矢量数据的隐藏通信与安全传输方面。
附图说明
图1是本发明方法的数据伪装流程图。图2是本发明方法的数据还原流程图。图3是本发明实施例中载体图层嵌入秘密数据前的图形。图4是本发明实施例中载体图层嵌入秘密数据后的图形。图5是本发明实施例中原始秘密数据的图形。图6是本发明实施例中所提取秘密数据的图形。
具体实施方式
下面结合附图和实施例做进一步详细说明。本实施例选择典型的shp格式矢量数据,针对数据的读取、伪装、还原的整个过程,进一步详细说明本发明。本实施例载体数据选择全国1:400万的省界数据(图3),秘密数据采用一个包含2089个点的模拟图层(图5),原始密钥设为“10022004”。(1)基于冗余位替换的点类型GIS矢量数据伪装处理步骤一:打开一个待伪装的点图层(又称秘密图层)文件和一个载体图层文件,确定载体图层中坐标值最大冗余位的位数num及其相关冗余数据的取值区间(min,max)。该实施例所选择的全国1:400万省界地图冗余起始位为小数点后第三位,其取值区间为(0.001,0.01)。扫描坐标序列得该载体图层最大冗余位数num为10。步骤二:秘密图层数据的域值、有效位长度与分组处理。下面以i=2时所对应的坐标值对(126.64722,51.721256)为例进行说明。(a)根据载体图层冗余数据的取值区间(min,max),对秘密图层中的每一个点坐标值对(Xi,Yi)用公式(1)计算控制符k和r。在该实施例中,取值区间为(0.001,0.01),在i=2时,用公式(1)可计算得对应的k值得为5,r值为4。(b)计算h值该实施例中,扫描秘密图层坐标序列得到其最大有效数字位数H=8,根据公式(2)计算得h=1。(c)对坐标值对进行预处理,补充有效数字对每一个坐标值对(Xi,Yi),查看其有效数字位数。如果小于num×h-1,则在每个坐标值最后一位有效数字后补“0”,确保其有效数字为num×h-1位。i=2时,X2、Y2的有效数字都为8,因此需要补1位“0”,经处理后,坐标对(X2,Y2)变成(126.647220,51.7212560)(d)将k追加在Xi坐标值的最后一位,将r追加在Yi坐标值的最后一位,使Xi、Yi坐标值均有num×h位有效数据。i=2时,经过处理,坐标对(X2,Y2)变成(126.6472205,51.72125604)。(e)将坐标值对按以下方式分成h组依次截取原始坐标值对(Xi,Yi)的第num×t到num×(t+1)-1位有效数字,作为第t个分组的坐标值对,最终形成h个新的坐标值对(xit,yit)。其中t=0,1,2,...,h-1;i=0,1,2,...,n-1,n为待伪装图层点的个数。该实施例中,由于分组数h为1。因此在i=2时,(X2,Y2)经过处理以后,生成与原值相同的1个新的坐标对(X20,Y20),其值为(126.6472205,51.72125604)。步骤三:根据输入的密钥10022004,生成一个长度为2089×1的伪随机序列L={Li}。该例中i=0,1,2,...,2089-1;Li的取值范围为0到80964(80965为所选载体图层点的个数)。对伪随机序列L中的数字按照升序排列,生成序列M={Mj},该序列的每个值正好对应秘密数据隐藏在载体图层中的位置。步骤四:依次读坐标序列(xit,yit)中的坐标值对,并根据序列M={Mj}将坐标值对(xit,yit)隐藏在载体图层的相应位置,具体步骤为(a)按照公式(3)计算j值:该例中,在i=2时,坐标值对(x20,y20)对应j值为2。(b)根据序列M第j个值Mj查找载体图层的待嵌入位置,并获取该位置的坐标值对(Aj,Bj)。i=2时j=2。从序列M={Mj}中查得M2的值为97。在第97个位置提取坐标串得到(A2,B2)为(122.878463745117,51.541088104248)。(c)对坐标值对的冗余位数据以(xit,yit)进行替换。该实施例中,小数点后第三位开始为冗余位,经过替换以后,(A2,B2)变成(122.871266472205,51.545172125604)。步骤五:循环步骤四,直至每一要素处理完毕后,保存伪装后的数据文件,并将原始密钥10022004,秘密图层点数2089,分组数1,以及0.01等四个参数存入密钥文件License.txt中。(2)对载密图层的数据进行还原处理。步骤一:新建一个点图层,其要素集为F,同时打开一个载密图层。步骤二:读取密钥文件License.txt,根据原始密钥10022004、秘密图层点数2089以及分组数1生成一个长度为2089×1的随机序列L={Li}。该实施例中i=0,1,2,...,2089-1;Li的取值范围为0到80964(80965为所选载体图层点的个数)。对伪随机序列L中的数字按照升序排列,生成序列M={Mj}(其中j=0,1,2,3,...,2089-1),该序列的每个值正好对应秘密数据隐藏在载体图层中的位置。步骤三:对于打开的载密图层,根据序列M={Mj}依次提取其中的载密坐标(xj,yj)。下面以j=2所对应的坐标值对(122.871266472205,51.545172125604)为例进行说明。步骤四:将载密坐标(xj,yj)根据密钥文件中提取的max分成(Aj,Bj)、(Cj,Dj)两部分。(a)根据公式(4)确定坐标值对的分割位置S=2。(b)截取坐标值对(xj,yj)从首位到小数点后S位的数字形成值对(Aj,Bj),截取坐标值对(xj,yj)小数点后S+1位到末位数字形成值对(Cj,Dj)。该实施例中S=2。在j=2时,截取坐标值对(122.871266472205,51.545172125604)从首位到小数点后2位的数字形成值对(A2,B2)其值为(122.87,51.54),截取坐标值对(122.871266472205,51.545172125604)小数点后2+1位到末位形成值对(C2,D2)其值为(1266472205,5172125604)。步骤五:从(Cj,Dj)中恢复秘密数据(a)将坐标值对(Cj,Dj)按公式(5)计算其对应的整数值i、t并更改坐标序列下标,生成坐标值对(Cit,Dit)其中t=0,1,2...h-1;i=0,1,2...n-1。j=2时,经计算得到其所对应的i值为2,t值为0,经处理后生成的坐标值对(C20,D20)对应的值为(1266472205,5172125604)。(b)将下标i相同的h个值对转换为字符串(C′it,D′it),并按公式(6)进行字符串拼接运算,生成新的字符串(S′i,T′i)并转回值对(Si,Ti)。下标i=2对应由(C2,D2)生成的一个坐标值对(C20,D20),由公式(6)处理得(S′2,T′2)为(“1266472205”,“5172125604”)。再将(S′2,T′2)转回数值对(S2,T2),其值为(1266472205,5172125604)。(c)按公式(7)进行处理,将值对(Si,Ti)生成新的值对(Ei、Fi),使Ei、Fi的绝对值位于区间(min,max)。该实施例中,max=0.01,min=0.001。i=2时,用公式(7)对(S2,T2)进行处理后生成的(E2、F2)值为(0.001266472205,0.005172125604)。(d)将Ei、Fi的最后一位数据k,r提取出来根据公式(8)进行处理,获得坐标值对(Xi,Yi)。E2、F2经过处理后,获得坐标值对(126.6472205,51.72125604)(e)将数据对(Xi,Yi)去掉末位数字和无效的0,加到新的点图层要素集F中。经过处理后,生成坐标值对(126.64722,51.721256)并加到要素集中。步骤六:循环步骤三到五,直至每一要素处理完毕后,保存提取后的数据文件。由实施例的效果图3、图4可知:在嵌入秘密信息前后,载体图层并未发生明显变化,这使得攻击者很难分辨该图层是否已经嵌入了秘密信息;由于该算法基于随机序列选择载体图层的隐藏位置,因此即使攻击者知道该图层为载密图层,也很难提取出秘密信息。从图5、图6可知:经过伪装与提取的过程,原始秘密信息与提取的秘密信息没有差异。进一步分析其坐标序列发现,原始秘密信息与提取的秘密信息坐标序列完全一致。因此该方法能够很好的恢复原始的秘密信息。本发明实施例中仅以线图层作为载体图层进行数据伪装,该方法也适用于以点图层和面图层为载体图层的数据伪装。将该方法适当完善,也可以用于线、面图层的信息伪装。本发明实施例中仅以shp格式的GIS矢量数据进行数据伪装与还原处理,该方法也适用于GML、E00、MIF等其它格式GIS矢量数据的数据伪装与还原处理。